package com.pai4j.pgc.dao;

import com.pai4j.domain.vo.response.subjectaccount.SubjectBaseResponseVO;
import com.pai4j.pgc.entity.SubjectEntity;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Repository;

import java.util.List;


@Repository
public interface ISubjectDAO extends JpaSpecificationExecutor<SubjectEntity>, JpaRepository<SubjectEntity, Long> {
    
     Page<SubjectEntity> findAllByAuthor(String author, Pageable pageable);
  
     List<SubjectEntity> findByAuthor(String author);
     
     /**
      * 根据作者和删除标识查询专题（用于过滤已删除/未删除的专题）
      * @param author 作者
      * @param deleteFlag 删除标识（1=未删除，0=已删除）
      * @param pageable 分页信息
      * @return 返回一个分页对象，其中包含了指定作者的专题列表
      */
     Page<SubjectEntity> findByAuthorAndDeleteFlag(String author, Integer deleteFlag, Pageable pageable);
     
     /**
      * 根据作者和删除标识查询专题列表（不分页）
      * @param author 作者
      * @param deleteFlag 删除标识（1=未删除，0=已删除）
      * @return 返回专题列表
      */
     List<SubjectEntity> findByAuthorAndDeleteFlag(String author, Integer deleteFlag);
     
     /**
      * 统计指定作者的专题数量（按删除标识）
      * @param author 作者
      * @param deleteFlag 删除标识（1=未删除，0=已删除）
      * @return 专题数量
      */
     Long countByAuthorAndDeleteFlag(String author, Integer deleteFlag);
}